Method: Magick::Image#<=>
- Defined in:
- ext/RMagick/rmimage.c
permalink #<=>(other) ⇒ Object
Compare two images.
Ruby usage:
- @verbatim Image#<=> @endverbatim
12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 |
# File 'ext/RMagick/rmimage.c', line 12207
VALUE
Image_spaceship(VALUE self, VALUE other)
{
Image *imageA, *imageB;
const char *sigA, *sigB;
int res;
imageA = rm_check_destroyed(self);
// If the other object isn't a Image object, then they can't be equal.
if (!rb_obj_is_kind_of(other, Class_Image))
{
return Qnil;
}
imageB = rm_check_destroyed(other);
(void) SignatureImage(imageA);
(void) SignatureImage(imageB);
sigA = rm_get_property(imageA, "signature");
sigB = rm_get_property(imageB, "signature");
if (!sigA || !sigB)
{
rb_raise(Class_ImageMagickError, "can't get image signature");
}
res = memcmp(sigA, sigB, 64);
res = res > 0 ? 1 : (res < 0 ? -1 : 0); // reduce to 1, -1, 0
return INT2FIX(res);
}
|